package com.shxy.dao.base;

import com.shxy.entity.custom.CustomStudent;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

/**
 * 学生信息访问接口
 */
@Repository
public interface StudentDao extends JpaRepository<CustomStudent, String> {
    /**
     * 根据学号判断学生是否存在
     * @param code
     * @return
     */
    Boolean existsByCode(String code);

    /**
     * 根据班级查询学生列表
     * @param clazzId
     * @return
     */
    List<CustomStudent> findByClazzId(int clazzId);

    /**
     * 根据学年查询学生列表
     * @param year
     * @return
     */
    @Cacheable(cacheNames = "stus_year")
    List<CustomStudent> findAllByClazzYear(String year);

    /**
     * 根据学号查询学生信息
     * @param code
     * @return
     */
    Optional<CustomStudent> findByCode(String code);
}
